The present invention relates to an arithmetic processing unit, and more particularly to an arithmetic processing unit for processing floating point data.
A floating point data is represented by an exponent part and a mantissa part. That is, data A is represented by M.times.2.sup.E where E represents an exponent part and M indicates the mantissa part. When two floating point data are processed by an arithmetic unit, their exponent parts and mantissa parts are in general independently processed, respectively. However, when values of the two exponent parts are different from each other, an operation for adjusting the value of one exponent part with a small value to the value of the other exponent part with a large value is required. To execute this adjusting operation a comparison is made between these two exponent parts, and thereafter adjusting is effected. Of course in addition to the adjusting operation, an adjustment to the mantissa part with respect to the data of which the exponent part has been adjusted is also required. The adjustment to the mantissa part can be performed by a bit shift operation. Thereafter, an arithmetic calculation of the two mantissa parts is performed. Here, if an overflow (or an underflow) arises in the calculation, a readjustment to the exponent part is required. For example, in the addition, a carry signal representing an overflow is generated from an adder. The exponent part is incremented by 1 according to the carry signal. In a conventional arithmetic processing unit, a result of an arithmetic operation is obtained after the second adjustment to the exponent part has been terminated.
As described above, the conventional arithmetic unit requires at least three different operations: one is a first adjustment operation of the exponent parts for adjusting a scale of one exponent part to that of the other exponent part; another operation is an arithmetic calculating operation of the mantissa parts; and the other operation is a second adjustment operation of an exponent part according to the arithmetic calculation of the mantissa parts. These three operations must be sequentially executed along a time axis, because the second operation is dependent on the result of the first operation and the third operation is dependent on the result of the second operation. Therefore, at least three operation cycles are necessarily required, so that a high speed processing can not be effected.
The conventional arithmetic processor carries out the third operation (the second adjustment operation) required to deal with an overflow (or an underflow) after the second operation (the arithmetic operation of the mantissa parts) has been completed. According to this operation flow, the additional time for the third operation is necessarily required. Therefore, no matter how speedily the arithmetic calculating operation (the second operation) may be performed with respect to the mantissa parts, a long period of time must be spent to complete the third operation (the second adjustment operation), resulting disadvantageously in a reduction also in a floating point data processing efficiency as a whole.